﻿/*----------------------------------------------------------------
 * 版权所有 (c) 2025 HaiTangYunchi  保留所有权利
 * CLR版本：4.0.30319.42000
 * 公司名称：
 * 命名空间：SalaryCalculator.Views
 * 唯一标识：f4cf2da4-46b8-4a53-9a4e-7efebe97aa74
 * 文件名：AddEmployeeForm
 * 
 * 创建者：海棠云螭
 * 电子邮箱：haitangyunchi@126.com
 * 创建时间：2025/5/10 20:25:23
 * 版本：V1.0.0
 * 描述：
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;

namespace SalaryCalculator
{
    public partial class AddEmployeeForm : Form
    {
        public string EmployeeName { get; set; }
        public decimal HourlyRate { get; set; }

        public AddEmployeeForm()
        {
            InitializeComponent();
            this.Text = "添加员工";
        }

        // 重载构造函数用于编辑模式
        public AddEmployeeForm(string name, decimal hourlyRate) : this()
        {
            this.Text = "编辑员工";
            txtName.Text = name;
            txtHourlyRate.Text = hourlyRate.ToString("0.00");
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!ValidateInput())
                return;

            EmployeeName = txtName.Text.Trim();
            HourlyRate = decimal.Parse(txtHourlyRate.Text);

            DialogResult = DialogResult.OK;
            Close();
        }

        private bool ValidateInput()
        {
            // 验证员工姓名
            if (string.IsNullOrWhiteSpace(txtName.Text))
            {
                MessageBox.Show("请输入员工姓名", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtName.Focus();
                return false;
            }

            // 验证小时工资
            if (!decimal.TryParse(txtHourlyRate.Text, out decimal hourlyRate) || hourlyRate <= 0)
            {
                MessageBox.Show("请输入有效的小时工资", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtHourlyRate.Focus();
                return false;
            }

            return true;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
            Close();
        }

        // 限制小时工资输入只能为数字和小数点
        private void txtHourlyRate_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
            {
                e.Handled = true;
            }

            // 只允许一个小数点
            if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
            {
                e.Handled = true;
            }
        }
    }
}